package net.mysoft.budgetsoft.system.dao; 
 
import java.util.List;
import java.util.Map;

import net.mysoft.budgetsoft.system.domain.TFlowTemplate;
import net.mysoft.budgetsoft.system.domain.TFlowTemplateNode;
import net.mysoft.budgetsoft.system.pagemodel.YongHu;
import net.mysoft.framework.base.BaseDao;
import net.mysoft.framework.base.BaseFlowPageModel;
import net.mysoft.framework.exception.FlowStatusException;

/**   
 *  
 * @author dagongPGP v1.0 
 * @link <a href=http://www.dagongsoft.net>北京大公信软科技有限公司</a> 
 *  
 * @version $Revision: 1.00  $Date: 2013-07-08 17:25:41 
 */ 
public interface FlowDao extends BaseDao{  
	/**
	 * 数据迁移使用 根据 项目编号创建流程并且创建所有tasknode
	 */
	//public Map create_QianYi(TFlowTemplate flowTemplate,String renWuJBXXBH,String xiangMuJBXXBH,String userCodes,int shanghuiPSR_Num);
	
	public Map create(TFlowTemplate flowTemplate,String renWuJBXXBH,String xiangMuJBXXBH,String userCodes);
	public List complete(BaseFlowPageModel baseFlowPageModel) throws FlowStatusException;
	public List<YongHu> candidate(String templateNode_ID,String userIDs);
	public List<YongHu> backUpCandidate(String templateNode_ID,String ftn_ID);
	public List<TFlowTemplateNode> findNextFlowTemplateNodeByFtn_ID(String ftn_ID,int lineStart);

	public List<TFlowTemplateNode> findBackFlowTemplateNodeByFtn_ID(String ftn_ID,String templateNode_ID);
	public List<String> skip(BaseFlowPageModel baseFlowPageModel);
	public List<String> sendBack(BaseFlowPageModel baseFlowPageModel);
	public void sendBack_NotStartNext(BaseFlowPageModel baseFlowPageModel);
	/*public void deleteFlow(String flowID);
	public void flowControl(String templateNode_ID,String xiangMuJBXXBH,String renWuJBXXBH);*/
	//liuyang	public List<TFlowTemplateNode> findNextFlowTemplateNodeByTemplateNode_ID(String templateNode_ID);
	//public List<TFlowNode> findCurrFlowNodeByXiangMuJBXXBH(String xiangMuJBXXBH);
	//public List<TFlowTemplateNode> findNextFlowTemplateNodeByRenWuJBXXBH(String renWuJBXXBH);
	//public List<String> takeBack(BaseFlowPageModel baseFlowPageModel);
}  
